package com.ebupt.migu.music.userGroup.service;

import com.ebupt.migu.music.common.entity.ResultObject;
import com.ebupt.migu.music.system.entity.SysUser;
import com.ebupt.migu.music.userGroup.entity.SplitGroupDTO;
import freemarker.template.TemplateException;

import java.io.IOException;
import java.util.Map;

/**
 * Created by Intellij IDEA.
 * User:  liuyangyang@cd.ebupt.com
 * Date:  2019/9/4
 */
public interface LabelService {

    /**
     * 查询省市列表
     *
     * @param paramMap
     * @return
     */
    ResultObject queryAreaList(Map<String, Object> paramMap);

    /**
     * 查询年龄段划分列表
     *
     * @return
     */
    ResultObject queryAgeDivisionList();

    /**
     * 查询等级划分列表
     *
     * @return
     */
    ResultObject queryGradeDivisionList();

    /**
     * 通过标签创建用户群
     *
     * @return
     */
    ResultObject createByLabel(Map<String, Object> params) throws IOException, TemplateException;

    /**
     * 通过人群名称查询人群ID
     *
     * @param params
     * @return
     */
    ResultObject queryByName(Map<String, Object> params);

    void refresh();

    ResultObject vipCode();

    /**
     * 创建临时客群
     *
     * @param params
     * @return
     */
    ResultObject createTmp(Map<String, Object> params);

    /**
     * 查询静态标签明细
     *
     * @param params
     * @return
     */
    ResultObject queryStaticCustomerInfo(Map<String, Object> params);

    /**
     * <p>【客群分箱】</p>
     * 获取标签平台sessionId
     *
     * @param user 用户信息
     * @return sessionId
     */
    ResultObject<Map<String, String>> getSessionId(SysUser user);

    /**
     * <p>【客群分箱】</p>
     * 分箱完成后批量增加新客群信息
     *
     * @param splitGroupDTO 分箱数据传输类
     * @param user          当前登录用户信息
     * @return 是否新增成功
     */
    ResultObject<String> batchSaveCustomerInfo(SplitGroupDTO splitGroupDTO, SysUser user);

    /**
     * 视频彩铃标签-级联菜单查询
     *
     * @param params
     * @return
     */
    ResultObject dropDownMenus(Map<String, Object> params);
}
